home *** CD-ROM | disk | FTP | other *** search
- Plain Vanilla Posting Program II
- Copyright (C) 1990, 1987 Plain Vanilla Corporation
- All Rights Reserved
-
- 1. What the Posting Program Is
-
- The Plain Vanilla Posting Program is a simple program that takes
- over three of the most boring accounting tasks--posting from the
- general journal to the general ledger, drawing a trial balance, and
- putting account balances into a report. It does job this much
- faster and more accurately than you can, and it won't let you post
- an unbalanced entry. Your books will always be in balance.
-
- The posting program features open design. The input to the posting
- program and the output from the posting program are plain text files
- in familiar formats. The journals look like journals, the ledgers
- look like ledgers. You can use a word processor or text editor to
- create, modify, examine and print these files and move data from one
- file to another.
-
- With version II, source code is supplied with the posting program.
- If you have Turbo C 2.0, the Turbo Assembler and Linker, you can
- recompile and relink the posting program. You might want to do this
- if you have received the program from a questionable source and you
- suspect that unauthorized changes have been made to the object code.
- You might also want to make some changes to suit your own
- application, but you're on your own there. We can't assure you that
- your changes will work.
-
- If you outgrow the posting program and want to use a more
- comprehensive accounting package, you can take advantage of this
- open design to move your records, if the other accounting package is
- similarly accommodating.
-
- 2. What the Posting Program Is Not
-
- The posting program has no security features. There are no
- passwords, for example. So lock up your diskettes if security may
- be a problem. Also, you should probably print out your files and
- manually sign and date the printed copies for authentication.
-
- The posting program is NOT copy protected. It is copyrighted, so
- you may not legally sell it, but you can give it away. In fact, we
- encourage you to distribute it as widely as possible. However, if
- you make changes, we ask you to pass on only the original,
- unmodified code.
-
- The posting program is not for large businesses or organizations.
- It absolutely will not handle sums larger than $21,474,836.47, even
- in trial balances and other intermediate calculations. For most
- small businesses and organizations, that's not much of a limitation,
- unless you're keeping your books in some foreign currency that's
- practically worthless.
-
- Finally, there is no tutorial with the posting program. It is
- presumed that you are familiar with manual accounting procedures,
- with the MS-DOS or PC-DOS operating system, with a suitable word
- processor or text editor, and with the necessity of keeping backup
- copies of everything.
-
- 3. What You Need to Use the Posting Program
-
- To use the posting program, you need an IBM PC/XT/AT or compatible
- with PC-DOS or MS-DOS 2.00 or a later version of MS-DOS. You don't
- need a graphics adapter or any special hardware. You will need at
- least a simple printer if you want printed copy of your work. At
- least 256K of memory is recommended, but you might be able to get by
- with less. You may need more memory if you have a lot of accounts
- or transactions. Get more--it's cheap. But don't go overboard--the
- posting program won't use more than 640K.
-
- You also need a word processor, or at least a text editor, that
- produces ASCII files. There are many of them. PC-WRITE, which is a
- "shareware" program, will do nicely. It is available on a trial
- basis at nominal charge from most IBM PC users groups, but you must
- register it if you decide to use it. You can use WordStar (in the
- nondocument mode). You can even use EDLIN, the rickety old line
- editor that comes with MS-DOS or PC-DOS, but we certainly don't
- recommend that.
-
- To get full use of the posting program, you'll need a word processor
- that allows you to move text from one file to another. You'll want
- to do that quite often.
-
- 4. Getting Started
-
- The first thing to do is to make a backup copy of the distribution
- diskette and put it in a safe place. That's always recommended.
- Then copy the file POST.EXE from the distribution diskette to your
- own diskette or hard disk. If you want to follow the examples given
- below, you should also copy the files ACCOUNTS, JOURNAL, BS.FRM and
- IS.FRM. You might also want to copy the file README, which contains
- the text of this manual. If your word processor allows you to edit
- two or more documents at the same time (and the best ones do), and
- you need to refer to this manual while you're editing your journal
- file, you can call up the file README (under whatever name you have
- chosen to give it), use the text search feature of your word
- processor to find the part you need to refer to, read it right off
- the screen. Your word processor can probably turn the pages much
- faster than you can.
-
- 5. Creating a Chart of Accounts
-
- The first thing you need, with either the posting program or a
- manual accounting system, is a chart of accounts. With the posting
- program this is simply a list containing the company name and the
- account names, one per line. Use your word processor to create one.
- Here is an example from the file ACCOUNTS on the distribution
- diskette:
-
- John Doe Enterprises
-
- Cash
- Accounts Receivable
- Inventory
- Accounts Payable
- John Doe Capital
- Sales
- Returns and Allowances
- Purchases
- Purchase Discounts
- Inventory Change
- Interest Income
- Advertising
- Rent
- Utilities
-
- You can use almost any company and account names you want, but there
- are a few restrictions. A company or account name consists of one
- or more words. Each word must begin with a letter. Subsequent
- characters in the word may be either letters or digits. Words are
- separated by spaces or tabs. Hence "Equipment1991" is an acceptable
- account name, but "Equipment 1991" is not. The reason for this rule
- is that the number "1991" might be mistaken for an account balance
- in some contexts.
-
- Punctuation marks, such a commas, may not be used in company or
- account names. However, the virgule (/) is very common in
- abbreviated account names (such as A/P), so it is permitted.
-
- The posting program does not distinguish between capital and small
- letters, so "CASH" and "Cash" are the same. The spacing between
- words is also unimportant, so "accounts payable" is the same as
- "accounts payable", but "accountspayable" is different, and so
- is "payable accounts".
-
- The maximum length of a company or account name, including single
- spaces between words, is 40 characters.
-
- The company name must come first. The account names may follow in
- any order, but it is helpful to arrange them in the order in which
- they will appear on the financial reports.
-
- 6. Creating a Journal File
-
- Now you need some transactions to post. Use your word processor
- again to create a text file that looks like a general journal, with
- a number of special instructions to the posting program. There are
- two such files--JOURNAL and GENERAL on the distribution diskette.
- You can use them as models for your own journals. Each one contains
- numerous comments that you will probably want to remove.
-
- The first three items in a journal file are normally of the
- following kind:
-
- Journal: OPEN/CLOSE
- Company: John Doe Enterprises
- Read Ledger: ACCOUNTS
-
- The first entry gives the name of the journal. It will be put into
- every line posted to the general ledger from this journal file. The
- entry is optional; if you omit it, the journal name will be omitted
- from the general ledger.
-
- The second entry gives the company name. It must match the name
- given in the chart of accounts. The posting program will warn you
- if the company name is omitted or does not match.
-
- The third entry creates a general ledger with no postings in it.
- You may also read a ledger previously created by the posting program
- if you want to post more transactions to it.
-
- 7. Standard Journal Entries
-
- The standard journal entries are easy to recognize. If the account
- name is indented--even a single space--the amount is a credit
- amount. Otherwise, the amount is a debit amount. You might want to
- align the debit and credit amounts vertically as they would appear
- in a ruled journal book. A good text editor will help you do that.
- It is not required by the posting program, but it makes the journal
- a lot easier to read.
-
- Dollar amounts are written without dollar signs. Commas are
- optional; but it you use them, you must put them in the standard
- positions. If a dollar amount is a whole dollar amount, you may
- omit the characters ".00" at the end.
-
- Blank lines (or lines containing only comments) should be used to
- separate journal entries, but must not be embedded within journal
- entries. The posting program uses blank lines to tell where journal
- entries begin and end so it can determine whether each one is
- balanced. If the posting program encounters an unbalanced entry, it
- will tell you so.
-
- Each account name must match one in the chart of accounts or ledger.
- If not, the posting program will warn you. Errors of this kind
- often result from simple typing errors. The posting program is very
- strict about spelling. It has no way of knowing that "Accounts
- Payable" is the same as "Acounts Payable".
-
- 8. Posting Commands
-
- In addition to the comments and standard journal entries, the
- journal files contain numerous posting commands. These are
- identified by the colon (:) after the name of the command.
-
- A complete list of posting commands appears below in Section 16.
-
- 9. Non-Ledger Amounts
-
- Financial reports contain balances in ledger accounts, of course,
- but they also contain many other dollar amounts that do not appear
- in any ledger account. In our example, there are accounts called
- "Purchases" and "Purchase Discounts". The total net balance in
- these two accounts (remembering that they normally contain debit and
- credit balances, respectively) is called "Net Purchases" on the
- income statement, but it is not a ledger account.
-
- It is convenient to automate the computation of such non-ledger
- amounts by asking the posting program to do the arithmetic. This is
- done with what might be called a pseudo-entry:
-
-
- Add: Purchases
- Add: Purchase Discounts
- Total: Net Purchases
-
- The posting program adds the balances in the two ledger accounts
- (netting debit and credit amounts as required) and puts the result
- into the non-ledger amount called "Net Purchases". The name of such
- a non-ledger amount must obey the same rules as a ledger account
- name, but it must be different from any ledger account name so it
- will not be confused with a ledger account in other contexts. The
- balances in the two ledger accounts are not changed.
-
- When three or more account balances are to be added, and the
- accounts are listed together in the chart of accounts, you can use a
- kind of shorthand. For example, the non-ledger amount called "Total
- Expenses" is calculated as follows:
-
- Add: Advertising
- Add: Rent
- Add: Utilities
- Total: Total Expenses
-
- If the accounts "Advertising", "Rent" and "Utilities" appear in the
- chart of accounts in that order, this can be abbreviated
-
- Add: Advertising .. Utilities
- Total: Total Expenses
-
- This is why it is so desirable to have accounts listed in the chart
- of accounts in the order they will appear on the financial
- statements. It facilitates this kind of shorthand.
-
- It is also possible to add previously computed non-ledger amounts.
- The total must be a non-ledger amount. The addends may be either
- ledger accounts or non-ledger amounts.
-
- The shorthand form may not be used with non-ledger addends because
- they have no definite order.
-
- 10. Closing Entries
-
- There are also special posting commands for closing accounts, with
- optional shorthand when the accounts to be closed are consecutive in
- the chart of accounts. The entry
-
- Close: Sales .. Utilities
- Into: John Doe Capital
-
- is equivalent to
-
- Close: Sales
- Close: Returns and Allowances
- Close: Purchases
- Close: Purchase Discounts
- Close: Inventory Change
- Close: Interest Income
- Close: Advertising
- Close: Rent
- Close: Utilities
- Into: John Doe Capital
-
- and its meaning is obvious.
-
- The "Into" command may also be used to supply a balancing amount in
- a non-closing entry. For example, if several payments are made by
- check, you might want to use an entry of the form:
-
- Advertising 123.67
- Rent 400.00
- Utilities 67.92
- Into: Cash
-
- Of course, the posting program will be unable to detect any
- imbalance, but in this case the checkbook reconciliation will serve
- this purpose.
-
-
- 11. Trial Balances
-
- To draw a trial balance, use one of the two posting commands:
-
- Trial Balance: <trial balance file>
-
- Condensed Trial Balance: <trial balance file>
-
- In the second form, accounts with zero balances will be omitted from
- the trial balance. The result will be written to the specified
- file. You can use any file specifications that DOS will accept,
- with a drive specification and directory path if needed. The
- previous contents of this file, if any, will be lost.
-
- A trial balance contains the company name, the date, the account
- names and balances and the debit and credit totals. The names of
- accounts with credit balances are indented, so the trial balance can
- be used as a journal entry, perhaps to open the books for the next
- period.
-
- 12. Creating Reports
-
- The most significant output of any accounting system is the
- financial reports, usually an income statement and a balance sheet.
-
- The Plain Vanilla Posting Program II has a simple report writer of
- a fill-in-the-blanks type. Just include a posting command of the
- form:
-
- Report: <form file>, <report file>
-
- The posting program will read the form file, use current ledger
- account balances and non-ledger amounts to fill in the form blanks
- (which are explained below), and write the resulting report to the
- report file. You can use any file specifications that DOS will
- accept, with a drive specification and directory path if needed.
- The previous contents of the report file, if any, will be lost. If
- this is undesirable, the alternative form
-
- Report: <form file>, +<report file>
-
- with a plus sign immediately in front of the report file
- specifications, will tell the posting program append the report to
- whatever is already in the file.
-
- Everything in the form file, except the form blanks, will be written
- to the report file without change. The files IS.FRM and BS.FRM on
- the distribution diskette are form files for an income statement and
- balance sheet, respectively. A form blank begins with a left brace
- ({), so the form file must not contain any other left braces.
-
- To put a ledger account balance, or a non-ledger amount, into the
- report, just include a form blank of the form
-
- {<account or amount name>,Dr}
-
- if the amount is expected to be a debit balance, or
-
- {<account or amount name>,Cr}
-
- if the amount is expected to be a credit balance. If the amount was
- what it was expected to be, it will be edited into a standard form,
- with commas, and inserted into the report in place of the form
- blank. The amount will be padded with spaces at the left, if
- necessary. Hence if a column of form blanks is aligned, the
- resulting amounts will also be aligned. If the amount was not what
- it was expected to be (a credit in the first case or a debit in the
- second case), the amount will be enclosed in parentheses. This may
- or may not be an error, depending on the application. If
- parentheses are not needed, blanks are placed before and after the
- amount. This guarantees vertical alignment of amounts with and
- without parentheses.
-
- In most financial reports printed on typewriters or standard PC
- printers, rows of minus signs or equal signs are used to underscore
- partial and total sums. The special form blank forms {-}, {=} and
- {} are converted into sequences of minus signs, equal signs or
- blanks, respectively, just long enough to underscore an amount.
- Blanks are inserted to guarantee alignment with amounts enclosed in
- parentheses.
-
- The posting program always leaves room enough for the largest
- possible amount (21,474,836.47), with parentheses, so it may yield
- something like the following:
-
- 100.00
- ( 10.00)
- -------------
- 90.00
- =============
-
- This wastes a great deal of space when all numbers are much smaller
- than the largest amount, as they often are in small companies or
- organizations. To prevent this, you can tell the posting program to
- trim a specified number of spaces from the left end of every dollar
- amount, as follows
-
- Report: <form file>, <report file>, 5
-
- This tells the posting program to trim five spaces. The above then
- becomes:
-
- 100.00
- ( 10.00)
- --------
- 90.00
- ========
-
- If you inadvertently trim away some non-blanks in this manner, the
- posting program will tell you so.
-
- Finally, the two special form blanks {Company:} and {Date:} will
- insert the company name or current date into the report. The
- current date, for this purpose, is the date in the most recent Date
- command (see below).
-
- If you design a report to follow the proper format, and it has no
- parenthesized amounts, it can be used as a journal file.
-
- 13. Messages
-
- A journal for the Plain Vanilla Posting Program II is something like
- a program in itself, expecially if it contains a lot of special
- posting commands. You probably won't get it right the first time,
- and you'll have to do a little debugging. The special posting
- command
-
- Message: <message string>
-
- will display the specified message on the console when the posting
- program executes it. If the message contains form blanks of the
- type described in the previous section, the posting program will
- replace it with the company name, date or amount.
-
- For example, the command
-
- Message: Cash balance on {Date:} = {Cash,Dr}
-
- will tell you what the cash balance was on a specific date, both
- according to previous postings and Date commands.
-
- 14. Running the Posting Program
-
- Now you're ready to run the posting program. Just make sure your
- chart of accounts and journal files and the file POST.EXE are all
- accessible, and type something like this
-
- POST JOURNAL
-
- The word POST calls up the program POST.EXE, which must be in the
- current directory or in a directory reachable through the DOS PATH
- directive, if any.
-
- The only command-line arguments are the file specifications for the
- journal files. You may include as many journals as you can fit on
- the command line. They will be posted in the order listed. As an
- alternative, the "Include" posting command can be used in one
- journal to force posting from others, as it is in our example. You
- can also write out the ledger and then read it in again to post more
- transactions to it.
-
- You may also force the posting program to execute a single posting
- command at a time by typing the posting command in square brackets
- on the command line. For example, the following command line forces
- the posting program to read an old ledger, post from a journal, and
- write the new ledger.
-
- POST [company: XYZ Corp] [read ledger: ledger.old] journal
- [write ledger: ledger.new]
-
- For security and audit purposes, you should probably print out
- copies of the journals and ledger and then sign, date, and file the
- copies. You might also want to make electronic backup copies as you
- do with other important data.
-
- If you keep a written journal and then use a word processor to
- create an electronic image of it for the posting program, be sure to
- keep the original written record if it is required by tax,
- regulatory or auditing authorities.
-
- 15. Adding and Deleting Accounts
-
- If your posting always starts from a chart of accounts, adding or
- removing an account is very easy. If you post from a ledger file
- with previous postings in it, the process is not much more
- difficult. The ledger file is a plain text file. If you want to
- add another account, just use your word processor to add it. As
- long as you follow the simple format used for ledgers by the posting
- program, everything will go fine. But don't put any entries in it.
- That would throw your books out of balance.
-
- If you want to remove an account, just use your word processor to
- remove the account and all postings in it. However, you'd better
- make sure the account balance is zero when you do this, or your
- books will be thrown out of balance. The best way to do this is to
- read the ledger and display the account balance:
-
- POST [Company: XYZ Corp] [Read Ledger: LEDGER]
- [Message: {account name,DR}]
-
- One word of warning: If you add a new account or delete an old one
- in a series of accounts in an Add or Close posting command, make
- sure the first and last accounts in the Add or Close command are
- still the first and last in the series. It's easy to miss one.
-
- This easy access to ledger files means that you have to be careful
- about security. Anyone with access to a word processor could make
- unauthorized changes in a ledger file, or any other file, and you
- might not be able to detect them. So lock up your diskettes when
- you're not working on them.
-
- If you're using a hard disk that you can't remove, you might
- consider using a separate encryption program to encrypt the files,
- or you might copy the files to one or more floppy diskettes, lock up
- the floppy diskettes when you're not using them, and copy the files
- back to your hard disk when you need them. That will keep the files
- free of unauthorized changes.
-
- If you also want to keep the information confidential, you'll really
- have to encrypt them or keep them off your hard disk. Just deleting
- them from your hard disk is not sufficient, because there are file
- recovery programs that can bring the information back very quickly.
- There are programs that will wipe out files so they can't be
- recovered, but you have to apply them to all files containing
- confidential information, even deleted ones.
-
- 16. List of Posting Commands
-
- Add: <ledger account name>
-
- Add the balance in the specified ledger account to the running
- total, netting debit and credit quantities as required. The balance
- in the ledger account is unchanged.
-
- Add: <first ledger account name> .. <last ledger account name>
-
- Add the balances in the first ledger account, the last ledger
- account, and every ledger account between them, as listed in the
- chart of accounts, to the running total, netting debit and credit
- quantities as required. The balances in the ledger accounts are
- unchanged.
-
- Add: <non-ledger amount name>
-
- Add the non-ledger amount to the running total, netting debit and
- credit quantities as required. The non-ledger amount is unchanged.
-
- Close: <ledger account name>
-
- Close the specified ledger account, i.e., post the quantity needed
- to bring its balance to zero.
-
- Close: <first ledger account name> .. <first ledger account name>
-
- Close the first ledger account, the last ledger account, and every
- ledger account between them, as listed in the chart of accounts.
-
- Company: <company name>
-
- If the company name is already recorded, check to see that it
- matches the name specified in this command. Otherwise, record the
- company name for later checking.
-
- Condensed Trial Balance: <trial balance file>
-
- Write out a trial balance, omitting ledger accounts with zero
- balances. Since the company name is included, this command will
- produce an error message if it is executed before the company name
- is recorded. The trial balance file is in journal format, but it
- has no journal name.
-
- Condensed Trial Balance: <trial balance file>, <journal name>
-
- Write out a trial balance, omitting ledger accounts with zero
- balances. Since the company name is included, this command will
- produce an error message if it is executed before the company name
- is recorded. The trial balance file is in journal format, and it
- has the specified journal name.
-
- Credit: <amount>
-
- Add the specified credit amount to the running total, netting debit
- and credit amounts as required.
-
- Date: <date>
-
- Set the date to the specified date. The date is used in all
- postings, trial balances and reports until changed by a subsequent
- date command. If there is no date command, the current date, as
- supplied by DOS when the posting program is loaded, is used. The
- date must be between January 1, 1980 and December 31, 2049,
- inclusive. The permitted formats are illustrated as follows:
-
- March 1, 1990 3-1-90 3/1/1990
- Mar 1, 1990 3/1/90 3.1.1990
- March 1, 90 3.1.90 03/01/90 (used in ledger file)
- Mar 1, 90 3-1-1990
-
- A two-digit year in the range 00-49 represents a year in the range
- 2000-2049.
-
- Debit: <amount>
-
- Add the specified debit amount to the running total, netting debit
- and credit amounts as required.
-
- Include: <journal file>
-
- Read the specified journal file and execute the commands and
- postings in it just as though they had appeared in place of this
- command, with one exception: the journal file may have a different
- journal name. A trial balance file is in journal format and may be
- included as a journal by this command.
-
- Into: <ledger account name>
-
- When this command is the last in a journal entry, it generates the
- dollar amount necessary to balance the entry and posts it to the
- specified ledger account. It is usually used for closing entries.
-
- Journal: <journal name>
-
- This command specifies the name of the journal in which it appears.
- It is included in the ledger for all subsequent postings from the
- journal. Unless POST.EXE has been modified as described below, a
- journal file can have only one name.
-
- Message: <message>
-
- Send the specified message to the operator (via the standard
- output). The message may contain form blanks to be filled exactly
- as though a report were being created, except that leading blanks
- are trimmed from dollar amounts.
-
- Read Ledger: <ledger file>
-
- Read the specified ledger file or chart of accounts. (A chart of
- accounts has exactly the same format as a ledger with no postings.)
- The company name must have been recorded previously so it can be
- checked against the company name in the ledger file. A ledger may
- be read piecemeal, but this is not the recommended practice.
-
- Report: <form file>, <report file>
-
- Create a report from the specified form file, filling in the
- form blanks with the current ledger account entries and non-ledger
- amounts, and write the results to the specified report file. The
- previous contents of the report file, if any, are lost.
-
- Report: <form file>, <report file>, <number of spaces to trim>
-
- Create a report from the specified form file, filling in the
- form blanks with the current ledger account entries and non-ledger
- amounts, trimming the specified number of spaces from the left end
- of each amount, and write the results to the specified report file.
- The previous contents of the report file, if any, are lost.
-
- Report: <form file>, +<report file>
-
- Create a report from the specified form file, filling in the
- form blanks with the current ledger account entries and non-ledger
- amounts, and append the results to the specified report file.
-
- Report: <form file>, +<report file>, <number of spaces to trim>
-
- Create a report from the specified form file, filling in the
- form blanks with the current ledger account entries and non-ledger
- amounts, trimming the specified number of spaces from the left end
- of each amount, and append the results to the specified report file.
-
- Subtract: <ledger account name>
-
- Subtract the balance in the specified ledger account from the
- running total, netting debit and credit quantities as required. The
- balance in the ledger account is unchanged.
-
- Subtract: <non-ledger amount name>
-
- Subtract the non-ledger amount from the running total, netting debit
- and credit quantities as required. The non-ledger amount is
- unchanged.
-
- Total: <non-ledger amount name>
-
- Assign the running total, as computed from prior Add, Subtract,
- Credit and Debit commands, to the specified non-ledger amount, and
- clear the running total to zero.
-
- Trial Balance: <trial balance file>
-
- Write out a trial balance, including ledger accounts with zero
- balances. Since the company name is included, this command will
- produce an error message if it is executed before the company name
- is recorded. The trial balance file is in journal format, but it
- has no journal name.
-
- Trial Balance: <trial balance file>, <journal name>
-
- Write out a trial balance, including ledger accounts with zero
- balances. Since the company name is included, this command will
- produce an error message if it is executed before the company name
- is recorded. The trial balance file is in journal format, and it
- has the specified journal name.
-
- Write Ledger: <ledger file>
-
- Write the current ledger contents to the specified file, including
- all postings. Since the company name is included, this command will
- produce an error message if it is executed before the company name
- is recorded.
-
- 17. Modifying POST.EXE
-
- Since source code for POST.EXE is provided, you can modify it to
- suit yourself, if you have the skill and tools to do so.
-
- However, you can use the CUSTOM.COM program to make one simple
- modification to POST.EXE without programming. As written, the
- posting program does not allow a journal file to have more than one
- name. In most cases this is desirable. If not, just type
-
- CUSTOM POST.EXE
-
- in response to the DOS prompt. You will be prompted as follows:
-
- Changeable journal name (0=no, 1=yes) [0]:
-
- To make it possible to change the journal name within a file, type 1
- and strike the Enter key.
-
- If you later change your mind, you can use the CUSTOM.COM program to
- change the parameter back to zero.
-
- Plain Vanilla Corporation September 1, 1990
- P.O. Box 4493, San Diego CA 92164
-